iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0

大家好~ 今天我們要來繼續介紹DOM的實作~

getElementById

html

<html>
<head>
    <title>getElementById</title>
</head>
<body>
    <h1 id="Head">Hello World!</h1>
    <button id="change">點我</button>
    <script src="getElementById.js"></script>
</body>
</html>

javascript

document.addEventListener("DOMContentLoaded", function() {
    var heading = document.getElementById("Head");
    var button = document.getElementById("change");

    button.addEventListener("click", function() {
        heading.innerHTML = "Halloween!";
    });
});

我們先讓Hello World!的id設置為Head把button的id設置為change。然後看到js這邊,document.addEventListener("DOMContentLoaded", function() {}是當該元素觸發相應的事件時,相應的函數將被執行,DOMContentLoaded是我們的事件名稱,代表在 HTML 文件完全載入且所有 DOM 元素都可以被使用之後觸發的事件。var heading = document.getElementById("Head");代表在html中找到一個id為Head的元素並把它存在一個叫做 heading 的變數中。下面的同理,所以網頁在點擊按鈕之後就會變換標題。
https://ithelp.ithome.com.tw/upload/images/20230922/201633228PP6Xi8LS8.png
https://ithelp.ithome.com.tw/upload/images/20230922/201633223diDcT4s50.png

getElementsByClassName

html

<!DOCTYPE html>
<html>
<head>
    <title>getElementsByClassName</title>
</head>
<body>
    <h1 class="heading">Hello</h1>
    <h1 class="heading">Hello</h1>
    <h1 class="heading">Hello</h1>
    <p class="paragraph">Happy</p>
    <p class="paragraph">Happy</p>

    <button onclick="changeText()">點我</button>

    <script src="getElementsByClassName.js"></script>
</body>
</html>

javascript

document.addEventListener("DOMContentLoaded", function() {
    var headings = document.getElementsByClassName("heading");
    var paragraphs = document.getElementsByClassName("paragraph");

    function changeText() {
        for (var i = 0; i < headings.length; i++) {
            headings[i].innerHTML = "World";
        }

        for (var i = 0; i < paragraphs.length; i++) {
            paragraphs[i].innerHTML = "Birthday";
        }
    }

    // 將 changeText 函數連結到按鈕點擊事件
    var button = document.querySelector("button");
    button.addEventListener("click", changeText);
});

https://ithelp.ithome.com.tw/upload/images/20230922/20163322LO0gPGRYcB.png
https://ithelp.ithome.com.tw/upload/images/20230922/201633225hoULcq9mJ.png

getElementsByTagName

html

<!DOCTYPE html>
<html>
<head>
    <title>getElementsByTagName</title>
</head>
<body>
    <h1>Hello</h1>
    <h2>World</h2>
    <p>apple</p>
    <p>pen</p>

    <button onclick="changeText()">點我</button>

    <script src="getElementsByTagName.js"></script>
</body>
</html>

javascript

<!DOCTYPE html>
<html>
<head>
    <title>getElementsByTagName</title>
</head>
<body>
    <h1>Hello</h1>
    <h2>World</h2>
    <p>apple</p>
    <p>pen</p>

    <button onclick="changeText()">點我</button>

    <script src="getElementsByTagName.js"></script>
</body>
</html>

https://ithelp.ithome.com.tw/upload/images/20230922/20163322qB46xvL0Mg.png
https://ithelp.ithome.com.tw/upload/images/20230922/20163322MyOsuyFr9Q.png
getElementsByClassNamegetElementsByTagNamegetElementById非常相似,只是選取的目標不同。分別是以class以及id來選取單位。

querySelector以及querySelectorAll的用法也十分相似。
他們是以css選擇器來選擇目標。

getAttribute

html

<a href="https://www.example.com" id="myLink">點我點我</a>

javascript

var link = document.getElementById("myLink");
var url = link.getAttribute("href");

console.log(url);

var url = link.getAttribute("href");代表找到href這個屬性的值(網址)。
console.log(url);則是輸出訊息到控制台。
執行後長這樣:
https://ithelp.ithome.com.tw/upload/images/20230922/20163322xmVnJkETTR.png
https://ithelp.ithome.com.tw/upload/images/20230922/20163322dlbFEQN2BD.png
setAttribute(要設定的屬性,屬性名字)則是設置元素屬性值的方法。

以上都是常見的DOM操作
今天先介紹到這邊~我們明天見~


上一篇
網頁之樹-DOM基本介紹(一)
下一篇
有因必有果--html裡的事件屬性
系列文
蛤架一個網站好貴喔,那我自己來10
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言